#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""standard library: argparse
argparse模块可以让人轻松编写用户有好的命令行接口.
程序定义它需要的参数, 然后argparse将弄清楚如何从sys.argv中解析出那些参数.
argparse模块会自动生成帮助和使用手册, 并在用户给程序传入无效参数时报出错误信息
"""

import argparse
import sys
import logging


def main() -> None:
    """包含参数解析的主函数
    :return: None
    """
    parser = argparse.ArgumentParser(
        description="sum or find the max value from a list of numbers")
    parser.add_argument('integers', type=int, nargs='+',
                        help="an integer for the accumulator")
    parser.add_argument('-s', '--sum', dest="accumulate", action='store_const',
                        const=sum, default=max)
    args = parser.parse_args()

    logging.info(args.accumulate(args.integers))
    logging.warning(args)
    logging.error(args.integers)


if __name__ == "__main__":
    main()
    logging.debug(sys.argv)
